Repository navigation
fix(ci): tolerate frontend test artifact errors - #104360
Conversation
Generated-By: PostHog Desktop Task-Id: 4954a5cb-231a-49d5-8920-d611aa7ad405
|
😎 Merged successfully - details. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: PostHog/posthog/.coderabbit.yaml Review profile: QUIET Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 WalkthroughWalkthroughThe Jest test-results artifact upload step in the frontend CI workflow now continues on error. Artifact-service failures no longer determine the Jest job verdict. Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to The workflow tolerates artifact upload failures while preserving Jest shard results; no merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 1✅ Passed checks (1 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🤖 CI report✅ Trunk lane — non-backend laneThis PR is assigned to the non-backend lane. It does not run backend Python tests and may merge in parallel with PRs in other lanes. ✅ Bundle size — 🟢 -872.0 KiB (-1.2%)Uncompressed size of every built Total: 68.37 MiB · 🟢 -872.0 KiB (-1.2%)
Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report ✅ Eager graph — within budgetHow much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy
🟢 Largest files eagerly shipped from
|
| Size | File |
|---|---|
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
| 6.3 KiB | ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js |
| 4.5 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 3.9 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.4 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.3 KiB | src/index.tsx |
| 1.3 KiB | src/RootErrorBoundary.tsx |
| 912 B | ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js |
| 854 B | src/scenes/ChunkLoadErrorBoundary.tsx |
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
| Size | File |
|---|---|
| 301.8 KiB | ../node_modules/.pnpm/posthog-js@1.434.11_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 267.6 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 100.4 KiB | src/lib/api.ts |
| 83.9 KiB | src/products.tsx |
| 69.1 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 63.4 KiB | src/lib/utils/eventUsageLogic.ts |
| 38.7 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.0.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js |
| 33.9 KiB | ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js |
| 28.5 KiB | src/scenes/scenes.ts |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 301.8 KiB | ../node_modules/.pnpm/posthog-js@1.434.11_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 268.0 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 267.6 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 153.7 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 100.4 KiB | src/lib/api.ts |
| 98.5 KiB | ../packages/quill/packages/quill/dist/index.js |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 90.6 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 83.9 KiB | src/products.tsx |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479
✅ Toolbar bundle — eager 2.36 MiB within budget
What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.
| Metric | Size | Δ vs base | Budget |
|---|---|---|---|
| Eager (shipped) entry + static imports |
2.36 MiB · 19 files | 🔺 +6.1 KiB (+0.3%) | ████░░░░░░ 41.3% of 5.72 MiB |
| Deferred (lazy) | 2.09 MiB · 44 files | 🔺 +28 B (+0.0%) | n/a — loads on demand |
Loader dist/toolbar.js |
1.2 KiB | no change | █░░░░░░░░░ 6.0% of 19.5 KiB |
Largest eagerly-shipped chunks
| Size | File |
|---|---|
| 787.1 KiB | dist/toolbar/toolbar-app-IBRAWU24.css |
| 650.5 KiB | dist/toolbar/chunk-chunk-ADLZ7WB6.js |
| 483.6 KiB | dist/toolbar/chunk-chunk-EC4CHVWG.js |
| 138.3 KiB | dist/toolbar/chunk-chunk-YY3RT3CP.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-FDH2IBXT.js |
| 75.2 KiB | dist/toolbar/toolbar-app-KJEU4DM5.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-TSAL54PB.js |
| 35.6 KiB | dist/toolbar/chunk-chunk-ZH2PRIEQ.js |
| 21.0 KiB | dist/toolbar/chunk-chunk-FSNY4LOM.js |
| 6.8 KiB | dist/toolbar/chunk-chunk-DV7IWQNF.js |
Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile
⚠️ Dist folder size — 🔺 +32.38 MiB (+2.1%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1543.25 MiB · 🔺 +32.38 MiB (+2.1%)
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Not approved yet — waiting on the conditions below.
Re-add the stamphog label to request another review once you have addressed this.
Gates denied this PR because it edits a CI workflow file (deny-listed infra/CI territory) and is classified as never-auto-approvable, regardless of how small or well-reasoned the change looks; it needs a human to sign off.
- webjunkie reviewed the current head.
- Modifies .github/workflows/ci-frontend.yml, which is on the CI/infra deny-list and gated to always require human review regardless of size or existing approval.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✗ | matches: infra_cicd |
| size | ✓ | 2L, 1F substantive — within ceiling |
| tier | ✗ | classified as T2-never: T2-never (2L, 1F, single-area, fix) |
| stamphog 2.0.0 | .stamphog/policy.yml @ 8ca6b6a · reviewed head 8ca6b6a |
|
Note 🤖 Automated comment by QA Swarm — not written by a human Multi-perspective review: router (cheap-first pass) + delegated reviewers (qa-team, paul-reviewer, xp-reviewer, security-audit as warranted) Verdict: ✅ APPROVE (round 1 @ 8ca6b6a)Small, low-risk CI workflow change. The router traced the full test-verdict flow (Jest run → JUnit files → quarantine gate → job exit) and confirmed the artifact upload step is purely archival: the quarantine gate reads local JUnit files and keys off Key findingsNone. ConvergenceN/A — single-pass review, no delegation triggered (danger: LOW, confidence: HIGH). Reviewer summaries
Automated by QA Swarm — not a human review |
There was a problem hiding this comment.
Not approved yet — waiting on the conditions below.
Re-add the stamphog label to request another review once you have addressed this.
This pull request was refused automatically by stamphog's deterministic gates, not reviewed for content.
- deny-list: FAILED — matches
infra_cicd, since this change modifies.github/workflows/ci-frontend.yml, a CI/infra workflow file that this policy category always blocks from automated handling. - tier: FAILED — classified as
T2-never, meaning this kind of change (small, single-area fix to CI workflow config) is never eligible for automated approval regardless of size.
Both gate failures are final and independent of code quality. To proceed, please request a human reviewer for this pull request; if it can be broken into smaller or differently scoped changes that avoid touching CI/infra workflow files, that may also help with future automated passes.
- webjunkie reviewed the current head.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✗ | matches: infra_cicd |
| size | ✓ | 2L, 1F substantive — within ceiling |
| tier | ✗ | classified as T2-never: T2-never (2L, 1F, single-area, fix) |
| stamphog 2.1.0 | .stamphog/policy.yml @ unknown · reviewed head 8ca6b6a |
Problem
A passing frontend test shard can fail a merge-queue batch when GitHub rejects its test-result artifact during finalization (evidence).
Why: Test validity must not depend on the artifact service.
Changes
Before:
flowchart LR Jest[Jest result] --> Artifact[Test-result artifact] Artifact --> Quarantine[Quarantine gate] Artifact --> Failure[Failed shard] Quarantine --> Gate[Required test gate] classDef phBlue fill:#1d4aff,stroke:#1d4aff,color:#fff; classDef phRed fill:#f54e00,stroke:#f54e00,color:#fff; classDef phYellow fill:#f9bd2b,stroke:#f9bd2b,color:#000; class Jest phYellow; class Artifact phRed; class Quarantine,Gate phBlue; class Failure phRed;After:
flowchart LR Jest[Jest result] --> Artifact[Test-result artifact] Artifact --> Quarantine[Quarantine gate] Artifact --> Warning[Upload warning] Quarantine --> Gate[Required test gate] classDef phBlue fill:#1d4aff,stroke:#1d4aff,color:#fff; classDef phRed fill:#f54e00,stroke:#f54e00,color:#fff; classDef phYellow fill:#f9bd2b,stroke:#f9bd2b,color:#000; class Jest phYellow; class Artifact,Warning phRed; class Quarantine,Gate phBlue;How did you test this code?
bin/hogli lint:workflowsactionlinton this workflow, excluding its existing unsupported nativeparallel:syntaxbin/hogli ci:preflightAutomatic notifications
Docs update
No. The test and quarantine behavior stays the same.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: PostHog Slack app, GPT-5
/debugging-ci-failures,/authoring-ci-workflows,/writing-code-comments,/writing-pr-descriptions, and/reviewing-with-coderabbit.Created with PostHog from a Slack thread